﻿using System;

namespace Pegasus.Diagnostics.Contracts
{
	/// <summary>
	/// Event Arguments for the Contract Failed event.
	/// </summary>
	public sealed class ContractFailedEventArgs : EventArgs
	{
		// Local Instance Values
		private ContractFailureKind m_failureKind;
		private string m_message;

		/// <summary>
		/// Initializes a new instance of the <see cref="ContractFailedEventArgs"/> class.
		/// </summary>
		/// <param name="failureKind">Kind of the failure.</param>
		/// <param name="message">The message.</param>
		public ContractFailedEventArgs( ContractFailureKind failureKind, string message )
		{
			m_failureKind = failureKind;
			m_message = message;
		}

		/// <summary>
		/// Gets the kind of the failure.
		/// </summary>
		/// <value>The kind of the failure.</value>
		public ContractFailureKind FailureKind
		{
			get
			{
				return m_failureKind;
			}
		}

		/// <summary>
		/// Gets the message.
		/// </summary>
		/// <value>The message.</value>
		public string Message
		{
			get
			{
				return this.m_message;
			}
		}
	}
}
